package com.xueyi.system.company.domain.po;

import java.util.Date;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.xueyi.system.company.domain.dto.CompanyDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

/**
 * 企业基础信息管理 持久化对象
 *
 * @author yanhe
 */
@TableName(value = "base_company", excludeProperty = {"remark", "sort"}, autoResultMap = true)
public class CompanyPo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 企业类型 （1个体户 2种植大户 3家庭农场 4合作社 5联合社 6龙头企业 7联合体（龙头企业+合作社+联合社） 8农业公司）
     */
    @Excel(name = "企业类型 ", readConverterExp = "1=个体户,2=种植大户,3=家庭农场,4=合作社,5=联合社,6=龙头企业,7=联合体（龙头企业+合作社+联合社")
    @TableField("type")
    private String type;

    /**
     * 企业形象
     */
    @Excel(name = "企业形象")
    @TableField("logo")
    private String logo;

    /**
     * 营业执照类型 （1三证合一营业执照 2普通营业执照）
     */
    @Excel(name = "营业执照类型 ", readConverterExp = "1=三证合一营业执照,2=普通营业执照")
    @TableField("document_type")
    private String documentType;

    /**
     * 企业注册号
     */
    @Excel(name = "企业注册号")
    @TableField("registration_num")
    private String registrationNum;

    /**
     * 营业期限
     */
    @Excel(name = "营业期限")
    @TableField("business_term")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date businessTerm;

    /**
     * 主体属性
     */
    @Excel(name = "主体属性")
    @TableField("principal_properties")
    private String principalProperties;

    /**
     * 所属行业
     */
    @Excel(name = "所属行业")
    @TableField("Industry")
    private String industry;

    /**
     * 种植品种
     */
    @Excel(name = "种植品种")
    @TableField("plant_type")
    private String plantType;

    /**
     * 省市区
     */
    @Excel(name = "省市区")
    @TableField(value = "area_ids", typeHandler = FastjsonTypeHandler.class)
    private JSONArray areaIds;


    /**
     * 省份
     */
    @Excel(name = "省份")
    @TableField(value = "province_code", updateStrategy = FieldStrategy.IGNORED)
    private String provinceCode;

    /**
     * 市区
     */
    @Excel(name = "市区")
    @TableField(value = "city_code", updateStrategy = FieldStrategy.IGNORED)
    private String cityCode;

    /**
     * 区县
     */
    @Excel(name = "区县")
    @TableField(value = "district_code", updateStrategy = FieldStrategy.IGNORED)
    private String districtCode;

    /**
     * 详情地址
     */
    @Excel(name = "详情地址")
    @TableField("address")
    private String address;

    /**
     * 经纬度(经度)
     */
    @Excel(name = "经纬度(经度)")
    @TableField("longitude")
    private String longitude;

    /**
     * 经纬度(纬度)
     */
    @Excel(name = "经纬度(纬度)")
    @TableField("latitude")
    private String latitude;

    /**
     * 法定代表人姓名
     */
    @Excel(name = "法定代表人姓名")
    @TableField("representative_name")
    private String representativeName;

    /**
     * 证件类型 （1大陆身份证 2港澳台身份证 3护照及其他）
     */
    @Excel(name = "证件类型 ", readConverterExp = "1=大陆身份证,2=港澳台身份证,3=护照及其他")
    @TableField("representative_type")
    private String representativeType;

    /**
     * 法人证件号
     */
    @Excel(name = "法人证件号")
    @TableField("representative_num")
    private String representativeNum;

    /**
     * 法人联系电话
     */
    @Excel(name = "法人联系电话")
    @TableField("representative_phone")
    private String representativePhone;

    /**
     * 联系人姓名
     */
    @Excel(name = "联系人姓名")
    @TableField("contact_name")
    private String contactName;

    /**
     * 联系人证件类型 （1大陆身份证 2港澳台身份证 3护照及其他）
     */
    @Excel(name = "联系人证件类型 ", readConverterExp = "1=大陆身份证,2=港澳台身份证,3=护照及其他")
    @TableField("contact_card_type")
    private String contactCardType;

    /**
     * 联系人证件号
     */
    @Excel(name = "联系人证件号")
    @TableField("contact_card")
    private String contactCard;

    /**
     * 联系人电话
     */
    @Excel(name = "联系人电话")
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 联系人邮箱
     */
    @Excel(name = "联系人邮箱")
    @TableField("contact_email")
    private String contactEmail;

    /**
     * 主体证件
     */
    @Excel(name = "主体证件")
    @TableField("license_information")
    private String licenseInformation;

    /**
     * 法人证件
     */
    @Excel(name = "法人证件")
    @TableField("legal_representative")
    private String legalRepresentative;

    /**
     * 主体介绍
     */
    @Excel(name = "主体介绍")
    @TableField("principal_part")
    private String principalPart;

    /**
     * 官地址
     */
    @Excel(name = "官地址")
    @TableField("website_url")
    private String websiteUrl;

    /**
     * 主体电话
     */
    @Excel(name = "主体电话")
    @TableField("subject_phone")
    private String subjectPhone;

    /**
     * 状态(1启用 2禁用)
     */
    @Excel(name = "状态(1启用 2禁用)")
    @TableField("status")
    private String status;

    /**
     * 组织图片
     */
    @Excel(name = "组织图片")
    @TableField("dept_img")
    private String deptImg;

    public String getDeptImg() {
        return deptImg;
    }

    public void setDeptImg(String deptImg) {
        this.deptImg = deptImg;
    }

    public String getPlantType() {
        return plantType;
    }

    public void setPlantType(String plantType) {
        this.plantType = plantType;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getLogo() {
        return logo;
    }

    public void setDocumentType(String documentType) {
        this.documentType = documentType;
    }

    public String getDocumentType() {
        return documentType;
    }

    public void setRegistrationNum(String registrationNum) {
        this.registrationNum = registrationNum;
    }

    public String getRegistrationNum() {
        return registrationNum;
    }

    public void setBusinessTerm(Date businessTerm) {
        this.businessTerm = businessTerm;
    }

    public Date getBusinessTerm() {
        return businessTerm;
    }

    public void setPrincipalProperties(String principalProperties) {
        this.principalProperties = principalProperties;
    }

    public String getPrincipalProperties() {
        return principalProperties;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getIndustry() {
        return industry;
    }

    public void setProvinceCode(String provinceCode) {
        this.provinceCode = provinceCode;
    }

    public String getProvinceCode() {
        return provinceCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setDistrictCode(String districtCode) {
        this.districtCode = districtCode;
    }

    public String getDistrictCode() {
        return districtCode;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setRepresentativeName(String representativeName) {
        this.representativeName = representativeName;
    }

    public String getRepresentativeName() {
        return representativeName;
    }

    public void setRepresentativeType(String representativeType) {
        this.representativeType = representativeType;
    }

    public String getRepresentativeType() {
        return representativeType;
    }

    public void setRepresentativeNum(String representativeNum) {
        this.representativeNum = representativeNum;
    }

    public String getRepresentativeNum() {
        return representativeNum;
    }

    public void setRepresentativePhone(String representativePhone) {
        this.representativePhone = representativePhone;
    }

    public String getRepresentativePhone() {
        return representativePhone;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactCardType(String contactCardType) {
        this.contactCardType = contactCardType;
    }

    public String getContactCardType() {
        return contactCardType;
    }

    public void setContactCard(String contactCard) {
        this.contactCard = contactCard;
    }

    public String getContactCard() {
        return contactCard;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactEmail(String contactEmail) {
        this.contactEmail = contactEmail;
    }

    public String getContactEmail() {
        return contactEmail;
    }

    public void setLicenseInformation(String licenseInformation) {
        this.licenseInformation = licenseInformation;
    }

    public String getLicenseInformation() {
        return licenseInformation;
    }

    public void setLegalRepresentative(String legalRepresentative) {
        this.legalRepresentative = legalRepresentative;
    }

    public String getLegalRepresentative() {
        return legalRepresentative;
    }

    public void setPrincipalPart(String principalPart) {
        this.principalPart = principalPart;
    }

    public String getPrincipalPart() {
        return principalPart;
    }

    public void setWebsiteUrl(String websiteUrl) {
        this.websiteUrl = websiteUrl;
    }

    public String getWebsiteUrl() {
        return websiteUrl;
    }

    public void setSubjectPhone(String subjectPhone) {
        this.subjectPhone = subjectPhone;
    }

    public String getSubjectPhone() {
        return subjectPhone;
    }

    public JSONArray getAreaIds() {
        return areaIds;
    }

    public void setAreaIds(JSONArray areaIds) {
        this.areaIds = areaIds;
    }

    @Override
    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String getStatus() {
        return status;
    }

}
